home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / Checkbox.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-19  |  4.0 KB  |  145 lines

  1. package symantec.itools.db.awt;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Event;
  5. import java.io.IOException;
  6. import symantec.itools.db.pro.ProjBinder;
  7. import symantec.itools.db.pro.ProjLink;
  8. import symantec.itools.db.pro.RelationView;
  9. import symjava.sql.SQLException;
  10.  
  11. public class Checkbox extends java.awt.Checkbox implements ProjLink {
  12.    private ProjBinder m_ProjBinder;
  13.    private String m_trueValue = new String("true");
  14.    private String m_falseValue = new String("false");
  15.    private int m_treatBlankAs;
  16.    private boolean m_DynamicUpdate = false;
  17.    private boolean m_ignoreStateChange = true;
  18.  
  19.    public Checkbox(String var1) {
  20.       super(var1);
  21.    }
  22.  
  23.    public Checkbox() {
  24.    }
  25.  
  26.    public void init(ProjBinder var1) {
  27.       this.m_ProjBinder = var1;
  28.       this.setEditable(this.m_ProjBinder);
  29.    }
  30.  
  31.    public void setTreatBlankAs(String var1) {
  32.       if ((new String(var1)).toUpperCase().equals("DEFAULT")) {
  33.          this.m_treatBlankAs = 0;
  34.       } else if ((new String(var1)).toUpperCase().equals("NULL")) {
  35.          this.m_treatBlankAs = 1;
  36.       } else {
  37.          if ((new String(var1)).toUpperCase().equals("BLANK")) {
  38.             this.m_treatBlankAs = 2;
  39.          }
  40.  
  41.       }
  42.    }
  43.  
  44.    public void setBinding(RelationView var1, String var2) {
  45.       try {
  46.          int var3 = var1.findProjByName(var2);
  47.          var1.bindProj(var3, this);
  48.       } catch (SQLException var4) {
  49.          this.raiseException("SQLException from Checkbox.setBinding: " + ((Throwable)var4).getMessage());
  50.       }
  51.    }
  52.  
  53.    public void notifyDataChange(ProjBinder var1) {
  54.       this.m_ignoreStateChange = true;
  55.  
  56.       try {
  57.          if (this.m_trueValue.equals(var1.getStringValue())) {
  58.             ((java.awt.Checkbox)this).setState(true);
  59.          } else {
  60.             ((java.awt.Checkbox)this).setState(false);
  61.          }
  62.       } catch (SQLException var3) {
  63.          this.raiseException("SQLException from Checkbox.notifyDataChange: " + ((Throwable)var3).getMessage());
  64.       } catch (IOException var4) {
  65.          this.raiseException("IOException from Checkbox.notifyDataChange: " + ((Throwable)var4).getMessage());
  66.       }
  67.    }
  68.  
  69.    public boolean notifySetData(ProjBinder var1) throws SQLException {
  70.       return this.notifyStateChange();
  71.    }
  72.  
  73.    boolean notifyStateChange() {
  74.       if (!this.m_ignoreStateChange) {
  75.          try {
  76.             if (this.m_ProjBinder != null && this.m_ProjBinder.isWritable()) {
  77.                if (((java.awt.Checkbox)this).getState()) {
  78.                   this.m_ProjBinder.setValueFromString(this.m_trueValue, 0, this.m_treatBlankAs);
  79.                } else {
  80.                   this.m_ProjBinder.setValueFromString(this.m_falseValue, 0, this.m_treatBlankAs);
  81.                }
  82.             }
  83.          } catch (SQLException var2) {
  84.             this.raiseException("SQLException from Checkbox.notifyStateChange: " + ((Throwable)var2).getMessage());
  85.             return false;
  86.          } catch (IOException var3) {
  87.             this.raiseException("IOException from Checkbox.notifyStateChange: " + ((Throwable)var3).getMessage());
  88.             return false;
  89.          }
  90.       }
  91.  
  92.       return true;
  93.    }
  94.  
  95.    public boolean handleEvent(Event var1) {
  96.       try {
  97.          this.m_ignoreStateChange = false;
  98.          this.notifySetData(this.m_ProjBinder);
  99.       } catch (SQLException var3) {
  100.          this.raiseException("SQLException from Checkbox.handleEvent: " + ((Throwable)var3).getMessage());
  101.       }
  102.  
  103.       return super.handleEvent(var1);
  104.    }
  105.  
  106.    public void setTrueValue(String var1) {
  107.       this.m_trueValue = new String(var1);
  108.       this.notifyDataChange(this.m_ProjBinder);
  109.    }
  110.  
  111.    public void setFalseValue(String var1) {
  112.       this.m_falseValue = new String(var1);
  113.       this.notifyDataChange(this.m_ProjBinder);
  114.    }
  115.  
  116.    void setEditable(ProjBinder var1) {
  117.       ((Component)this).disable();
  118.  
  119.       try {
  120.          if (var1 != null) {
  121.             RelationView var2 = var1.getRelationView();
  122.             if (var2 != null && var2.getCurrentRecordState() != 105) {
  123.                ((Component)this).enable();
  124.                return;
  125.             }
  126.          }
  127.       } catch (SQLException var3) {
  128.          this.raiseException("SQLException from Checkbox.setEditable: " + ((Throwable)var3).getMessage());
  129.       }
  130.  
  131.    }
  132.  
  133.    public boolean gotFocus(Event var1, Object var2) {
  134.       return super.gotFocus(var1, var2);
  135.    }
  136.  
  137.    void raiseException(String var1) {
  138.       System.out.println(var1);
  139.    }
  140.  
  141.    public void setDynamicUpdate(boolean var1) {
  142.       this.m_DynamicUpdate = var1;
  143.    }
  144. }
  145.